macOS easy JDK switching
Martin van Wingerden
Blog OwnerAs a freelance developer and part-time blogger, I need to switch JDKs regularly. In the morning, I could be developing a legacy system. And in the evening, I'd b writing an article on a JDK preview feature such as text blocks. And in the night, I'm working on small PR for openHAB. In today's post, I'll share some aliases that I use to easily switch JDK's on my MacBook's.
Short Introduction to 'java_home'
Luckily, macOS offers a handy tool to find information about installed JDK's, it's located in /usr/libexec/java_home
and it is very usefull in setting up a JDK or running against a specific JDK. The following fragment shows the -V
command which prints all the recognized JDK's:
When you pass a lowercase v
, you will get the path to the matching JDK:
We can also leverage the output, to update our JAVA_HOME
variable and by creating some aliasses you can easily switch, see the following aliases from my .bash_aliases
file:
tip
For Java 8 and older, you should prefix the version with '1.'
When switching, we'll also show the output of java -version
to make it extra clear to what version we just switched. This leads us to the following output when switching:
Note on installing through Brew
When installing a specific JDK version via Brew it will/might not directly be visible for java_home
. After installing, it will show a command you can execute to make sure it is registered properly, that will look something like the following:
Conclusion
Using java_home
and some quick aliases, we can easily use multiple JDK versions in parallel and switch without any issues.